package mdm.uniauto.me.route;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;

import java.util.HashMap;

/**
 * @Date 创建时间 ： 2017/10/16
 * @Author 作者：sjt
 * @Description 描述：基本的Intent操作
 * @Version 版本
 */

public abstract class BaseIntentOperate<T> implements IOperate<T, Intent> {
    private HashMap<String, Class<T>> container = new HashMap<>();

    @Override
    public void put(String uri, Class<T> cls) {
        if (container != null) {
            container.put(uri, cls);
        }
    }

    @Override
    public Intent get(Context context, String uri) {
        Class<T> cls = null;
        if (isExist(uri)) {
            cls = container.get(uri);
        } else {
            throwException(uri);
        }
        return new Intent(context, cls);
    }

    @Override
    public boolean isExist(String uri) {
        return container != null && container.keySet().contains(uri);
    }

    abstract void throwException(String uri);
}
